import os
import shutil

# 要保留的核心文件夹
core_dirs = [
    'app01',
    'basal_adjust',  # 项目配置文件夹
    'venv',
    '.idea',  # IDE配置文件夹
    '__pycache__',
    'api_docs'
]

# 要保留的核心文件
core_files = [
    'manage.py',
    'db.sqlite3',
    'requirements.txt',
    'routing.py',
    'cleanup_project.py',  # 保留当前脚本
    'move_docs.py',        # 文档移动脚本
    'reorganize_files.py', # 文件整理脚本
    '项目结构说明.md',
    'manage.spec'
]

# 删除不必要的测试文件和临时文件
def cleanup_project():
    # 获取当前目录下的所有文件和文件夹
    entries = os.listdir('.')
    
    for entry in entries:
        # 跳过核心文件夹和文件
        if entry in core_dirs or entry in core_files:
            continue
            
        # 如果是测试文件或临时文件，删除它
        if os.path.isfile(entry) and (
            entry.startswith('test_') or 
            entry.startswith('check_') or 
            entry.startswith('generate_') or 
            entry.startswith('create_') or
            entry.startswith('fix_') or
            entry.startswith('add_') or
            entry.startswith('run_')
        ):
            try:
                os.remove(entry)
                print(f"删除文件: {entry}")
            except Exception as e:
                print(f"无法删除文件 {entry}: {e}")
        
        # 删除不必要的文件夹
        elif os.path.isdir(entry) and entry not in core_dirs:
            try:
                shutil.rmtree(entry)
                print(f"删除文件夹: {entry}")
            except Exception as e:
                print(f"无法删除文件夹 {entry}: {e}")

if __name__ == "__main__":
    # 确认删除操作
    confirm = input("此操作将删除项目中的测试文件和临时文件。是否继续？(y/n): ")
    
    if confirm.lower() == 'y':
        cleanup_project()
        print("清理完成！")
    else:
        print("操作已取消。") 